package com.aididi.demospringbootrabbitmqcallback.dao;

import com.aididi.demospringbootrabbitmqcallback.entity.BrokerMessageLogVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Auther: xuzexiang
 * @Date: 2018-11-18 0018 23:07
 * @Description:
 */
@Mapper
public interface BrokerMessageLogMapper {
    /**
     * 创建消息日志
     * @param brokerMessageLogMapper
     */
    void insert(BrokerMessageLogVO brokerMessageLogMapper);
    /**
     * 更新消息状态
     *
     * @param messageLogPO 消息日志
     */
    void changeBrokerMessageLogStatus(BrokerMessageLogVO messageLogPO);

    /**
     * 查询消息状态为0 且 已经超时的消息
     *
     * @return 消息日志集合
     */
    List<BrokerMessageLogVO> listSendFailureAndTimeoutMessage();

    /**
     * 更新重试次数+1
     *
     * @param po 消息日志
     */
    void updateRetryCount(BrokerMessageLogVO po);

}
